Skip to content

Conversation

@lpahlavi
Copy link
Contributor

@lpahlavi lpahlavi commented Jul 29, 2025

(XC-297) This PR updates all solana-* crates to their latest v3 releases, which introduce breaking changes.

  • Dependency cleanup: The v3 solana-* crates no longer depend on wasm-bindgen. This eliminates the need for our custom forks of solana-sdk and solana-system-program. As a result, all [patch.crates-io] sections have been removed from Cargo.toml files.
  • ICP Ninja deployment: The ICP Ninja deployment of basic_solana uses the latest published version of sol_rpc_client on crates.io. That version still depends on the older v2 solana-* crates. To accommodate this, the ICP Ninja deployment is temporarily branched from the local and mainnet deployments, which now use the v3 crates.

BREAKING CHANGES: This update is breaking for the sol_rpc_types and sol_rpc_client crates, as they re-export many types from the solana-* crates.

@lpahlavi lpahlavi force-pushed the lpahlavi/remove-solana-sdk-fork branch from cd25d7b to b01aeb8 Compare August 18, 2025 11:51
@lpahlavi lpahlavi force-pushed the lpahlavi/remove-solana-sdk-fork branch from d0cfe0e to 2e5d8fa Compare August 19, 2025 09:38
@lpahlavi lpahlavi changed the title build: remove dependency on forked solana-sdk build!: remove dependency on forked solana-sdk Aug 19, 2025
@lpahlavi lpahlavi changed the title build!: remove dependency on forked solana-sdk build!: replace fork of solana-sdk by latest releases Aug 19, 2025
@lpahlavi lpahlavi changed the title build!: replace fork of solana-sdk by latest releases build!: replace forkd solana-* crates by latest releases Aug 22, 2025
@lpahlavi lpahlavi changed the title build!: replace forkd solana-* crates by latest releases build!: replace forked solana-* crates by latest releases Aug 22, 2025
@lpahlavi lpahlavi requested a review from gregorydemay August 22, 2025 06:19
@lpahlavi lpahlavi marked this pull request as ready for review August 22, 2025 07:10
@lpahlavi lpahlavi requested a review from a team as a code owner August 22, 2025 07:10
@lpahlavi lpahlavi mentioned this pull request Aug 22, 2025
Copy link
Collaborator

@gregorydemay gregorydemay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lpahlavi for cleaning this up!

@lpahlavi lpahlavi requested a review from gregorydemay August 22, 2025 12:16
@lpahlavi lpahlavi merged commit f141f90 into main Aug 22, 2025
19 of 20 checks passed
@lpahlavi lpahlavi deleted the lpahlavi/remove-solana-sdk-fork branch August 22, 2025 13:43
lpahlavi added a commit that referenced this pull request Aug 22, 2025
(XC-297) This is a follow-up to #197. Now that the `solana-sdk`
dependencies are upgraded to v3, use the
`spl_associated_token_account_interface` crate to compute associated
token addresses (ATAs) and `spl-token-interface` crate to create an SPL
transfer instruction in the `basic_solana` example and integration
tests.
This was referenced Aug 27, 2025
lpahlavi added a commit that referenced this pull request Sep 1, 2025
## 🤖 New release

* `sol_rpc_types`: 2.0.0 -> 3.0.0
* `sol_rpc_canister`: 1.1.0 -> 1.2.0
* `sol_rpc_client`: 2.0.0 -> 3.0.0

<details><summary><i><b>Changelog</b></i></summary><p>

## `sol_rpc_types`

<blockquote>

##
[3.0.0](sol_rpc_types-v2.0.0...sol_rpc_types-v3.0.0)
- 2025-08-29

### Changed

- Replace forked `solana-*` crates by the corresponding ones in
`solana_sdk` version `3.0.0`. The `patch.crates-io` section in
`Cargo.toml` is therefore no longer necessary and can be removed.
([#197](#197))
</blockquote>

## `sol_rpc_canister`

<blockquote>

##
[1.2.0](sol_rpc_canister-v1.1.0...sol_rpc_canister-v1.2.0)
- 2025-08-29

### Changed

- Replace forked `solana-*` crates by the corresponding ones in
`solana_sdk` version `3.0.0`. The `patch.crates-io` section in
`Cargo.toml` is therefore no longer necessary and can be removed.
([#197](#197))
</blockquote>

## `sol_rpc_client`

<blockquote>

##
[3.0.0](sol_rpc_client-v2.0.0...sol_rpc_client-v3.0.0)
- 2025-08-29

### Changed

- Replace forked `solana-*` crates by the corresponding ones in
`solana_sdk` version `3.0.0`. The `patch.crates-io` section in
`Cargo.toml` is therefore no longer necessary and can be removed.
([#197](#197))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Louis Pahlavi <[email protected]>
lpahlavi added a commit that referenced this pull request Sep 2, 2025
([XC-456](https://dfinity.atlassian.net/browse/XC-456)) Due to the
breaking changes in #197, the symlink for the `basic_solana` ICP Ninja
deployment source code was removed. Since `sol_rpc_client` and
`sol_rpc_types` v3.0.0 were released without the patched `solana-*`
dependencies, this PR adds back the symlink and removes the duplicated
code for the `basic_solana` ICP Ninja deployment.

[XC-456]:
https://dfinity.atlassian.net/browse/XC-456?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants